xen/arm: Prevent slipping hypervisor SError to guest
authorWei Chen <Wei.Chen@arm.com>
Wed, 5 Apr 2017 09:09:20 +0000 (17:09 +0800)
committerStefano Stabellini <sstabellini@kernel.org>
Wed, 5 Apr 2017 19:15:15 +0000 (12:15 -0700)
commit70f18ea64a1d614d52989612155273b713114bbc
tree93e9f27badc20ecdcce6d97584af29a77c75e53d
parent126751d1e9d433ae7ab6b448ef121d2e6dc59c9b
xen/arm: Prevent slipping hypervisor SError to guest

If there is a pending SError while we're returning from trap. If the
SError handle option is "DIVERSE", we have to prevent slipping this
hypervisor SError to guest. So we have to use the dsb/isb to guarantee
that the pending hypervisor SError would be caught in hypervisor before
return to guest.

In previous patch, we will set SKIP_SYNCHRONIZE_SERROR_ENTRY_EXIT to
cpu_hwcaps when option is NOT "DIVERSE". This means we can use the
alternative to skip synchronizing SErrors for other SErrors handle options.

Because we have umasked the Abort/SError bit in previous patch. We have
to disable the Abort/SError before returning to guest as we have done
for IRQ.

Signed-off-by: Wei Chen <Wei.Chen@arm.com>
Reviewed-by: Julien Grall <julien.grall@arm.com>
xen/arch/arm/traps.c